This invention relates, in general, to optimizing system resources, and in particular, to dynamically tuning sockets across an indeterminate number of socket connections and unknown network types.
In computing environments that can be dynamically changed, such as in parallel and cluster environments, optimal tuning of system resources is a challenge and tedious task. In particular, it is very difficult to tune the system resources for optimal performance when, for instance, the number of nodes and thus, the number of sockets, is variable, or when the type of network is unknown.
Thus, previously, a single set of resources has been tuned and shared across several applications. Alternatively, parameters of the resources have been adjusted with severe impact to the system. That is, the system would be stopped, adjustments would be made, and then the system would be started again, thus impacting other applications on the system.
Based on the foregoing, a need still exists for a capability that enables system resources to be optimally set for dynamic computing environments. For example, a need exists for a capability that enables the tuning of socket parameters for indeterminate environments.
The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of tuning sockets of a computing environment. The method includes, for instance, dynamically determining information relating to a current configuration of the computing environment; and setting one or more parameters of a socket of the computing environment based on the dynamically determined information.
In a further embodiment, a method of tuning sockets of a computing environment is provided. The method includes, for instance, determining, in response to opening a socket of the computing environment, information relating to a current configuration of the computing environment, the information including at least one of information relating to a network of the computing environment coupled to the socket and information relating to the socket; and setting one or more parameters of the socket based on the determined information, wherein the one or more parameters reflect the current configuration of the computing environment.
System and computer program products corresponding to the above-summarized methods are also described and claimed herein.
Advantageously, the capabilities of the present invention enable the tuning of system resources in changing environments. For example, socket parameters are dynamically set based on the current configuration of the environment (e.g., based on the current number of socket connections and/or the network type). This tuning is performed without stopping the system and with no need for static allocations.
In one example, the capabilities of the present invention provide optimized values to the Transmission Control Protocol (TCP)/Internet Protocol (IP) socket that utilizes the advertised window feature of TCP/IP to prevent exhaustion of system network resources and poor performance.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.